Software problems are 100 to 1000 times more costly to find and repair after deployment. Verifying and managing quality throughout the project lifecycle is essential to achieving the right objectives at the right time.

Topics

Introduction To top of page

Quality is something we all strive for in our products, processes, and services. Yet when asked "What is Quality?" everyone has a different opinion. Common responses include:

"Quality ... I'm not sure how to describe it, but I'll know it when I see it."

or

"... meeting requirements."

Perhaps the most frequent reference to quality (related to software) is the remark regarding its absence:

"How could they release something like this with such low quality!?"

These commonplace responses are telling. But they offer little room to rigorously examine quality and improve upon its execution. These comments all illustrate the need to define quality in a manner in which it can be measured and achieved.

But quality is not a singular characteristic or attribute. Quality is multi-dimensional, and Quality can be possessed by a product or a process. Product quality is concentrated on building the right product, while process quality is focused on building the product right. See Concepts: Product Quality and Concepts: Process Quality for additional information.

Definition of Quality To top of page

The definition of quality (as taken from The American Heritage Dictionary of the English Language, 3rd Edition, Houghton Mifflin Co., c 1992, 1996) is:

Quality (kwol'i-te) n., pl. -ties. Abbr. qlty. 1.a. An inherent or distinguishing characteristic; a property. b. A personal trait, especially a character trait. 2. Essential character; nature. 3.a. Superiority of kind. b. Degree or grade of excellence.

As demonstrated by this definition, quality is not a single dimension, but many. In order for us to use the definition and apply it to software development, the definition must be refined.

Therefore, for the purposes in Rational Unified Process, quality is defined as:

"The characteristic identified by the following:
  • satisfies or exceeds an agreed upon set of requirements, and
  • assessed using agreed upon measures and criteria, and
  • produced using an agreed upon process."

Therefore, achieving quality is not simply "meeting requirements" or producing a product that meets user needs, or expectations, etc. But rather, quality also includes identifying the measures and criteria to demonstrate the achievement of quality, and the implementation of a process to ensure that the product created by the process, has achieved the desired degree of quality (and can be repeated and managed).

See also the following pages for additional information on how the Rational Unified Process defines the concept quality:

Who Owns Quality? To top of page

A common misconception is that quality is owned by or is the responsibility of one group. This myth is often perpetuated by creating a group, sometimes called Quality Assurance (other names include: Test, Quality Control, or Quality Engineering), and giving them the charter and responsibility for quality.

Quality is and should be, the responsibility of everyone. Achieving Quality should be integral to almost all process activities instead of a separate discipline. Thereby making everyone responsible for the quality of the products (or artifacts) they produce and the implementation of the process for which they are involved in.

Each worker contributes to the achievement of quality in the following ways:

  • Product quality - the contribution to the overall achievement of quality in each artifact being produced.
  • Process quality - the achievement of quality in the process activities for which they are involved.

Everyone shares in the responsibility and glory for the achievement of a high-quality product (or the shame of low-quality). But only those directly involved in specific process component are responsible for the glory (or shame) for the quality of those process components (and the artifacts). However, someone must take the responsibility for managing Quality, that is, providing the oversight to ensure that Quality is being managed, measured, and achieved. The worker responsible for managing Quality is the Project Manager.

Common Misconceptions about Quality To top of page

There are many misconceptions regarding quality. The most common include:

Quality can be added to, or "tested" into a product:

Just as a product cannot be produced if there is no description of what it is, what it needs to do, who uses it and how, etc. Quality, and its achievement, cannot be attained if it is not described, measured, and part of the process of creating the product.

See Concepts: Measuring Quality, and the section titled Quality happens on its own below.

Quality is a single dimension, attribute, or characteristic, and
Quality means the same thing to everyone:

Quality is not a single dimension, attribute, or characteristic. Quality is measured in many ways. Quality metrics and criteria are established to meet the needs of project, organization, and customer.

Quality can be measured along several dimensions, some apply to process quality, some to product quality, some to both. Quality can be measured for:

  • Progress - such as use cases demonstrated or milestones completed.
  • Variance - differences between planned and actual schedules, budgets, staffing requirements, etc.
  • Reliability - resistance to failure (crashing, hanging, memory leaks, etc.) during execution.
  • Function - the artifact implements and executes the required use cases as intended.
  • Performance - the artifact executes and responds in a timely and acceptable manner and continues to perform acceptably when subjected to real-world operational characteristics, such as load, stress, and lengthy periods of operation.

See Concepts: Quality Dimensions, Concepts: Product Quality, and Concepts: Process Quality for additional information.

Quality happens on its own:

Quality cannot happen by itself. For Quality to be achieved, a process is must be implemented, adhered to, and measured. The purpose of Rational Unified Process is to provide a disciplined approach to assigning tasks and responsibilities within a development organization. Its goal is to ensure the production of high-quality software that meets the needs of its end users, within a predictable schedule and budget. The Rational Unified Process captures many of the best practices in modern software development in a form that can be tailorable for a wide range of projects and organizations. The Environment workflow will give you guidance how to best configure the process to our needs.

Processes can be configured and quality (criteria for acceptability) can be negotiated based upon several factors. The most common factor are:

  • Risk (including liability).
  • Market opportunities.
  • Revenue requirements.
  • Staffing or scheduling issues.
  • Budgets.

Changes in the process and criteria for acceptability should be identified and agreed upon at the outset of the project.

Managing Quality in the Rational Unified Process To top of page

Managing Quality is done for the following purposes:

  • To identify appropriate indicators (metrics) of acceptable quality.
  • To identify appropriate measures to be used in the evaluation and assessment of quality.
  • To identify and appropriately address issues affecting quality as early and effectively as possible.

Managing Quality is implemented throughout all workflows, phases, and iterations in the Rational Unified Process. In general, managing quality throughout the lifecycle is to implement, measure, and assess both process quality and product quality. Below, are highlighted some of the efforts expended in each workflow to manage quality:

  • Managing quality in the Requirements workflow includes the analysis of the requirements artifact set for consistency (between artifact standards and other artifacts), clarity (clearly communicates information to all shareholders, stakeholders, and other workers), and precision (appropriate level of detail and accuracy).
  • In the Analysis & Design workflow, managing quality includes assessment of the design artifact set, including the consistency of the design model, its translation from the requirements artifacts, and its translation into the implementation artifacts.
  • In the Implementation workflow, managing quality includes assessing the implementation artifacts and evaluating the source code / executable artifacts against the appropriate requirements, design, and test artifacts.
  • The Test workflow is highly focused towards the management of quality, as most of the efforts expended in the workflow address the purposes of managing quality identified above.
  • The Environment workflow, like test, includes many efforts addressing the purposes of managing quality. Here, you can find guidance on how to best configure your process to meet your needs.
  • Managing quality in the Deployment workflow includes assessing the implementation and deployment artifacts, and evaluating the executable and deployment artifacts against the appropriate requirements, design, and test artifacts needed to deliver the product to the end-customer.
  • The Project Management workflow includes the overview of many efforts for managing quality, including the review and audits to assess the implementation, adherence, and progress of the development process.
 

Copyright  ⌐ 1987 - 2000 Rational Software Corporation

Display Rational Unified Process using frames

Rational Unified Process